Method of generating an error map for calibration of a robot or multi-axis machining center

ABSTRACT

A novel, portable coordinate measuring machine comprises a multijointed (preferably six joints) manually positionable measuring arm for accurately and easily measuring a volume, which in a preferred embodiment, comprises a sphere ranging from six to eight feet in diameter and a measuring accuracy of 2 Sigma +/−0.005 inch. In addition to the measuring arm, the present invention employs a controller (or serial box) which acts as the electronic interface between the arm and a host computer. The coordinate measuring machine of this invention is particularly useful in a novel method of generating an error map and thus correcting and/or programming the tool path for multi-axis machining centers, particularly robots.

CROSS-REFERENCE TO RELATED APPLICATION

This is a continuation-in-part of U.S. application Ser. No. 08/112,394filed Oct. 26, 1993, which in turn is a continuation-in-part of U.S.application Ser. No. 08/021,949 filed Feb. 23, 1993 (now U.S. Pat. No.5,402,582).

BACKGROUND OF THE INVENTION

This invention relates generally to three dimensional coordinatemeasuring machines (or CMM's). More particularly, this invention relatesto a new and improved three dimensional CMM which is portableandprovides improved accuracy and ease of use; and the application ofthis CMM to a novel method for programming the tool path of a multi-axismachine tool or robot.

It will be appreciated that everything in the physical world occupiesvolume or space. Position in a space may be defined by length, width andheight which, in engineering terms, is often called an X, Y, Zcoordinate. The X, Y, Z numbers represent the dimensions of length,width and height or three dimensions. Three-dimensional objects aredescribed in terms of position and orientation; that is, not just wherean object is but in what direction it points. The orientation of anobject in space can be defined by the position of three points on theobject. Orientation can also be described by the angles of alignment ofthe object in space. The X, Y, and Z coordinates can be most simplymeasured by three linear scales. In other words, if you lay a scalealong the length, width and height of a space, you can measure theposition of a point in the space.

Presently, coordinate measurement machines or CMM's measure objects in aspace using three linear scales. These devices are typicallynon-portable, expensive and limited in the size or volume that can beeasily measured.

FARO Technologies, Inc. of Lake Mary, Fla. (the assignee of the presentinvention) has successfully produced a series of electrogoniometer-typedigitizing devices for the medical field. In particular, FAROTechnologies, Inc. has produced systems for skeletal analysis known asMETRECOM® (also known as Faro Arms®) and systems for use in surgicalapplications known as SURGICOM™. Electrogoniometer-type devices of thetype embodied in the METRECOM and SURGICOM systems are disclosed in U.S.Pat. No. 4,670,851 and U.S. application Ser. No. 593,469 filed Oct. 2,1990 and Ser. No. 562,213 filed Jul. 31, 1990 all of which are assignedto the assignee hereof and incorporated herein by reference.

While well suited for their intended purposes, the METRECOM and SURGICOMelectrogoniometer-type digitizing systems are not well suited forgeneral industrial applications where three dimensional measurements ofparts and assemblies are often required. Therefore, there is acontinuing need for improved, accurate and low cost CMM's for industrialand related applications.

A serious limitation in the practical usage of CNC or computernumerically controlled devices such as robotics and 5-axis machinecenters is the time and effort required to program intricate andconvoluted paths prior to performing typical robotic functions (such aswelding or sanding) and/or typical machine tool functions (such asmachining complex molded parts). Presently, this programming processentails a careful and meticulous step-by-step simulation based on trialand error.

SUMMARY OF THE INVENTION

The above-discussed and other problems and deficiencies of the prior artare overcome or alleviated by the three dimensional measuring instrument(e.g., electrogoniometer) of the present invention; and method of usingthe same. In accordance with the present invention, a novel, portablecoordinate measuring machine comprises a multijointed (preferably sixjoints) manually positionable measuring arm for accurately and easilymeasuring a volume, which in a preferred embodiment, comprises a spherepreferably ranging from six to eight feet in diameter (but which mayalso cover diameters more or less than this range) and a measuringaccuracy of preferably 2 Sigma +/−0.0005 inch (and optimally 2 Sigma+/−0.001 inch). In addition to the measuring arm, the present inventionemploys a controller (or serial box) which acts as the electronicinterface between the arm and a host computer.

The mechanical measuring arm used in the CMM of this invention isgenerally comprised of a plurality of transfer housings (with eachtransfer housing comprising a joint and defining one degree ofrotational freedom) and extension members attached to each other withadjacent transfer housings being disposed at right angles to define amovable arm preferably having five or six degrees of freedom. Eachtransfer housing includes measurement transducers and novel bearingarrangements. These novel bearing arrangements include prestressedbearings formed of counter-positioned conical roller bearings andstiffening thrust bearings for high bending stiffness with low profilestructure. In addition, each transfer casing includes visual and audioendstop indicators to protect against mechanical overload due tomechanical stressing.

The movable arm is attached to a base or post which includes (1) atemperature monitoring board for monitoring temperature stability; (2)an encoder mounting plate for universal encoder selection; (3) an EEPROMcircuit board containing calibration and identification data so as toavoid unit mixup; and (4) a preamplifier board mounted near the encodermounting plate for transmission of high amplified signals to a remotecounter board in the controller.

As in the prior art METRECOM system, the transfer casings are modularpermitting variable assembly configurations and the entire movable armassembly is constructed of one material for ensuring consistentcoefficient of thermal expansion (CTE). Similarly as in the METRECOMsystem, internal wire routing with rotation stops and wire coilingcavities permit complete enclosure of large numbers of wires. Alsoconsistent with the prior art METRECOM system, this invention includes aspring counterbalanced and shock absorbed support mechanism for usercomfort and a two switch (take/accept) data entry device for allowinghigh precision measurements with manual handling. Also, a generalizedoption of the type used in the prior art METRECOM system is provided forthe measurement of variables in three dimensions (e.g., temperature maybe measured in three dimensions using a thermocouple attached to theoption port).

The use of a discrete microprocessor-based controller box is animportant feature of this invention as it permits preprocessing ofspecific calculations without host level processing requirements. Thisis accomplished by mounting an intelligent preprocessor in thecontroller box which provides programmable adaptability andcompatibility with a variety of external hosts (e.g., externalcomputers). The serial box also provides intelligent multi-protocolevaluation and autos witching by sensing communication requirements fromthe host. For example, a host computer running software from onemanufacturer will generate call requests of one form which areautomatically sensed by the controller box. Still other features of thecontroller box include serial port communications for standardized longdistance communications in a variety of industrial environments andnovel analog-to-digital/digital counter boards for simultaneous captureof every encoder (located in the transfer housing) resulting in highlyaccurate measurements.

Efficient on-site calibration of the CMM of the present invention isimproved through the use of a reference ball positioned at the base ofthe CMM to obviate potential mounting complications to system accuracyevaluation. In addition, the CMM of this invention includes means forperforming a volumetric accuracy measurement protocol on an interimbasis, preferably using a novel cone ballbar device.

In accordance with still another embodiment of this invention, a novelmethod is provided for programming the complex paths required foroperations of robotics and multi-axis machine centers in the performanceof typical functions such as sanding or welding (commonly associatedwith robotics) and machining molded parts (commonly associated withmulti-axis machine tools). In accordance with this method, it is desiredto replicate in a computer controlled machine, the operation or a path(defined both by direction and orientation) of an experienced humanoperator. This is accomplished using the CMM of this invention wherebythe CMM operator uses the lightweight, easy-to-handle and passiveelectrogoniometric device described above with a simulated tool at itsdigitizer end and emulates either a desired tool path or manufacturingoperation. As this path or operation is emulated, the position andorientation data (in both the X, Y and Z directions and/or I, J and Korientations) of the CMM is accumulated and stored. This data is thentransferred using industry standard formats to a computer numericallycontrolled (CNC) device such as a robot or machining center for thereproduction of the motions emulated using the CMM. As a result, thecomputer controlled device has provided to it, in a quick and efficientmanner, the exact path and/or operations data for performing a taskregardless of the complexity involved. Prior to this method, theprogramming of such tasks involved meticulously and carefully programmedstep-by-step sequences using simulation and trial and error.

To date Robotic programming has operated principally through a processcalled teach mode. In the teach mode approach the robot is directed toperform and memorize a task. A technician will direct a robot through acontroller panel and joy stick to perform the desired motions. Therobot's actions are stored as a series of stepwise motions includingrotations of various joints and actions of specific end-effectors.

Because of the nature of this method the actual absolute dimensionalposition was not as important as the ability to repeat a positionpreviously taught.

The industry has witnessed a significant increase in computerization inthe design and manufacturing environments and an increase in the numberof complex curved paths and types of end-effectors used such as laser.This means that robotic path data begins to resemble, typical CAM(Computer Aided Manufacturing) data. Typical computer controlledmachining centers are both dimensionally accurate and repeatable. Thisis not the case for the typical multi-jointed robot, for the reasonsdescribed above.

The above-discussed and other features and advantages of the presentinvention will be appreciated and understood by those skilled in the artfrom the following detailed description and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring to the drawings, wherein like elements are numbered alike inthe several FIGURES:

FIG. 1 is a front diagrammatic view depicting the three dimensionalmeasuring system of the present invention including a coordinatemeasuring machine, a controller box and a host computer;

FIG. 2 is a side elevation view depicting the host computer mounted onthe serial box, which is in turn, mounted on a maneuverable arm;

FIG. 3 is a side elevation view of the three dimensional measuringsystem of the present invention mounted on a theodolite stand;

FIG. 4 is a rear elevation view of the CMM shown in FIG. 1;

FIG. 5 is a longitudinal view, partly in cross-section of the CMM ofFIG. 1;

FIG. 6 is an exploded, side elevation view of a transfer housing used inthe CMM of FIG. 1;

FIGS. 6A and 6B are views along the lines 6A—6A and 6B—6B, respectively,of FIG. 6;

FIG. 7 is a cross-sectional elevation view of two assembled,transversely orientated transfer housings;

FIG. 8 is an enlarged, side elevation view of a counterbalanced springdevice used in the CMM of FIG. 1;

FIGS. 9A and 9B are top and bottom plan views depicting the handle/probeassembly of FIG. 1;

FIGS. 10A and 10B are respective side elevation views of a ball probeand a point probe;

FIG. 11 is an enlarged front view of the controller box of FIG. 1;

FIG. 12 is an enlarged rear view of the controller box of FIG. 1;

FIG. 13 is a schematic view of the electronic components for the threedimensional measuring system of FIG. 1;

FIG. 14 is a side elevation view of the CMM of FIG. 1 depicting a probetip calibration system;

FIG. 15 is a schematic top plan view showing a method of calibrating theprobe tip;

FIG. 16 is a side elevation view of the CMM of FIG. 1 being calibratedwith a ballbar;

FIGS. 17 and 18 are side elevation views of the CMM of FIG. 1 beingcalibrated by a novel cone ballbar device;

FIG. 19 is a side elevation view depicting a method for optimizing theCMM of FIG. 1 using an optimization jig;

FIGS. 20A-E are respective front, rear, top, right side and left sideelevation views of the precision step gauge used in the jig of FIG. 19;

FIG. 21 is a schematic view showing a method of optimizing the CMM ofFIG. 1 utilizing the apparatus of FIG. 19;

FIG. 22 is a flow chart depicting the method steps for programmingcomputer controlled machine tools and robots using the CMM of thepresent invention;

FIGS. 23A-C are sequential diagrammatic views of the method of FIG. 22being performed in connection with a computer controlled machine tool;

FIG. 24 is a diagrammatic view of the method of FIG. 22 being performedin connection with a computer controlled robot;

FIG. 25 is a diagrammatic view of a multi-axis error map prepared inaccordance with the present invention depicting a desired path ascompared to an actual path;

FIG. 26 is a flow chart depicting the method steps for programmingcomputer controlled machine tools and robots using the CMM of thepresent invention so as to correct the actual path of FIG. 25 tocoincide with the desired path of FIG. 25; and

FIG. 27 is a side elevation view depicting the CMM of FIG. 1 beingmechanically linked to a robot or the like.

DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring first to FIG. 1, the three dimensional measuring system of thepresent invention generally comprises a coordinate measuring machine(CMM) 10 composed of a manually operated multijointed arm 12 and asupport base or post 14, a controller or serial box 16 and a hostcomputer 18. It will be appreciated that CMM 10 electronicallycommunicates with serial box 16 which, in turn, electronicallycommunicates with host computer 18.

As will be discussed in more detail hereinafter, CMM 10 includestransducers (e.g., one transducer for each degree of freedom) whichgather rotational positioning data and forward this basic data to serialbox 16. Serial box 16 provides a reduction in the overall requirementsof host computer 18 to handle certain complex calculations and providescertain preliminary data manipulations. As shown in FIG. 2, serial box16 is intended to be positioned under the host computer 18 (such as thenotebook computer shown in FIG. 2) and includes EEPROMS which containdata handling software, a microcomputer processor, a signal processingboard and a number of indicator lights 20. As mentioned, basictransducer data is sent from CMM 10 to serial box 16. Serial box 16 thenprocesses the raw transducer data on an ongoing basis and responds tothe queries of the host computer with the desired three-dimensionalpositional or orientational information.

Preferably, all three components defining the three dimensionalmeasuring system of this invention (e.g., CMM 10, serial box 16 and hostcomputer 18) are mounted on either a fixed mounting surface using arigid plate and/or a standard optical measurement instrument threadfollowed by mounting on a known and standard theodolite mobile standsuch as shown at 22 in FIG. 3. Preferably, theodolite stand 22 comprisesa part no. MWS750 manufactured by Brunson. Such a mobile stand ischaracterized by a stable rolling platform with an extendable verticaltower and with common attachments and locking mechanisms. As shown inFIGS. 2 and 3, support base 14 of CMM 10 is threaded or otherwiseattached onto a vertical support member 24 of stand 22 while serial box16/host 18 is supported on a shelf 26 pivotally connected at a firstjoint 28 to an arm 30 which is pivotally connected to a second joint 32.Connecting member 34 interconnects joint 32 to a swivel connection 36attached to a cap 38 mounted over the top of member 24.

Referring now to FIGS. 1 and 4-9, CMM 10 will now be described indetail. As best shown in FIG. 5, CMM 10 comprises a base 14 connected toa first set of two transfer housings including a first transfer housing40 which, in turn, is connected to a second transfer housing 42(positioned transverse to housing 40). A first extension member 44 isrigidly attached to a second set of two transfer housings including athird transfer housing 46 transversely attached to a fourth transferhousing 48. First extension member 44 is positioned perpendicularlybetween transfer housings 42 and 46. A second extension member 50 isaligned with an rigidly attached to transfer housing 48. Rigid extensionmember 50 is rigidly attached to a third set of two transfer housingsincluding a fifth transfer housing 52 transversely attached to a sixthtransfer housing 54. Fifth transfer housing 54 has attached thereto ahandle/probe assembly 56.

In general (and as will be discussed in more detail hereinafter),position sensing transducers are mounted in each of the six transferhousings 40, 42, 46, 48, 52 and 54. Each housing is comprised of bearingsupports and transducer compartments which are made to thencylindrically attach to each other using 45° angled attachment screws(FIG. 6). At the base 14 is a counterbalanced spring device 60 forsupport of arm 12 in its standard vertical configuration (FIG. 8).

Turning now to FIGS. 6 and 7, a detailed description will be made of atransfer housing and its internal components. It will be appreciatedthat FIG. 6 is an exploded view of a transfer housing, while FIG. 7shows an enlarged view of the transversely oriented and attachedtransfer housings (e.g., housings 46 and 48). Each housing includes aninternal carrier 62 and an external casing 64. Mechanical stabilitybetween internal carrier 62 and external casing 64 is provided by twocounter-positioned (e.g., oppositely disposed) conical roller bearings60, 68 positioned to compress against their respective conical races,70, 72. Conical races 70 and 72 are permanently affixed into theexternal transfer casing 64. Carrier includes a shaft 122 extendingtherefrom and terminating at threading 74. Conical bearings 60, 68 arepreferably made from hardened steel while races 70, 72 are also madefrom hardened steel.

During assembly of transfer casing 48, a compressional force is appliedusing a nut 73, which is tightened to a specific torque on threads 74,providing a prestressed bearing situation resulting in no motion otherthan axial rotation under typically applied loads. Because of thenecessity of a low profile of such an arm during manual handling and theattendant reduction in the overall stiffness, it is preferable and, infact required in certain applications, to also install a thrust bearing76 at the interface between carrier 62 and casing 64. Thrust bearing 76provides further mechanical stiffening between carrier 62 and casing 64of the transfer housing. Thrust bearing 76 comprises five elementsincluding thrust adjustment ring 300, flat annular race 302, rollerbearing and cage 304, annular race 306 and opposing thrust cover 308.Thrust bearing 76 is adjusted through a series of set screws 78 andprovides for high bending stiffness. The transducer, (preferably anencoder 80 such as is available from Heidenhain under the designationMini-Rod, part no. 450M-03600), is mounted to a universal mounting plate82 for mounting into the transfer casing. Universal mounting plate 82 isimportant in satisfying possible component availability problems suchthat a change in manufacture of transducer 80 and, hence, the change inmounting screw configuration can be accommodated through modificationsin the mounting plate 82. Mounting plate 82 is shown in FIG. 6A as atriangular shaped plate having rounded corners. FIG. 6A also depictsthreaded members 88 and 90, a pin 86 and a coupler 84 (all of which arediscussed. hereinafter).

High accuracy rotational measurements using encoders 80 require thatthere should be no loads applied to the encoders and that motion of thetransfer casing be accurately transmitted to the encoder despite smallmisalignments of the axis of the transfer casing and axis of theencoder. The angular transfer errors are well known to those skilled inthe art from the published encoder literature. Communicating withencoder 80 is a coupler 84 such as is available from Rembrandt under thedesignation B1004R51R. An extension shaft 86 is utilized for ultimatelyconnecting encoder 80 to the transfer casing 64. Shaft 86 is attachedboth to coupler 84 and to the end of carrier 62 at threading 74 usingset screws 88, 90 (see FIG. 7). In accordance with an important featureof this invention, an electronic preamplifier board 92 is positioned inclose proximity to encoder 80 and is mounted (via screws 94) on theinside of cap cover 96. Cap cover 96 is attached to casing 64 via screw97. A transition housing 98 interconnects cap cover 96 to casing 64 viascrew 97 and screws 100. Sealing of the transfer housing to theenvironment is accomplished at the joint using an O-ring groove 102 inwhich is mounted a standard rubber O-ring groove 104. A rotationalendstop 106 (to be discussed hereinafter), is best shown in FIG. 6B andcomprises a square shaped metal housing having an opening therethroughwhich is mounted onto casing 64 using bolt 108 threaded through theopening of the housing. Wire passing through grommets to stop abrasionover long term use are mounted on both carrier 62 and casing 64 at 110and 112. A location pin 114 is received by a complimentary shaped recess116 in carrier 62 for the purpose of maintaining relative orientation oftwo adjacent transfer casings.

Referring to FIG. 7, for environmental and other reasons, it isimportant that all wire be completely hidden from sight and, therefore,contained within the arm 12. FIG. 7 depicts two assembled transferhousings 46, 48 mounted perpendicularly to each other and demonstratingthe passage of wires. It will be appreciated that during use of CMM 10,the encoder information from encoder 80 is passed to its processor board92 through wire 118 which is then amplified and passed through the armby machined passageways 120. Wire 118 then passes through a channel 120in the shaft 122 of the internal carrier 62 of the transfer casing 46and through a grommetted hole 124 at which time it passes into a largecavity 126 machined on the external casing 64 of transfer housing 46.Cavity 126 permits the coiling of the wire strands during rotation ofthe transfer casing and is configured so as not to produce any wireabrasion and a minimum of wire bending. However, because the wire limitsthe overall ability to fully rotate, an incomplete spherical groove 128is created in which is positioned an endstop screw, 130 which limits thefull rotation, in this case to 330°. It will be appreciated that thepass through channel 120 and wire coiling cavities 122 are subsequentlyrepeated in each transfer casing allowing the wires to progressivelymake their way down to the connector mounted at the base 14, resultingin no exposed wiring.

Turning now to FIG. 8, the construction of the aluminum arm as well asthe various bearings and transducers results in an accumulated weight ofapproximately 10 to 15 pounds at the probe handle assembly 56 of CMM 10.Under normal circumstances, this would create a significant amount offatigue during use and, hence, must be counterbalanced. Weightcounterbalances are not preferred since they would significantlyincrease the overall weight of the device when being considered fortransportability. Therefore, in a preferred embodiment counterbalancingis performed using counterbalance device 60 which comprises a torsionalspring 132 housed in a plastic casing 134 and mounted at transferhousing 42 at base 14 for providing a lift for arm 12. Coiled torsionalspring 132 can be mounted in a variety of positions affecting theoverall pretension and, hence, may be usable on a variety of lengths andweights of arms 12. Similarly, due to the weight of arm 12 and theeffect of the recoiled spring, significant shock loads may occur whenrepositioning the arm to the storage position. To prevent significantshocking of the arm upon retraction, air piston shock absorber 134 isalso configured into plastic housing 142 of counterbalance spring device60. This results in an absorption of the shock load and slow relaxationinto the rest position. It will be appreciated that FIG. 8 depicts theshock absorber 134 in a depressed configuration while FIGS. 16-18 depictshock absorber 134 in a fully extended position.

In FIGS. 9A and 9B, top and bottom views of probe handle assembly 56 areshown. Probe handle assembly 56 is meant to be held as either a pencilor pistol grip and possesses two switches (items 150 and 152 in FIG. 9A)for data taking, a connector (item 154 in FIG. 9B) for the attachment ofoptional electronics and a threaded mount 156 for receiving a variety ofprobes. Because the CMM 19 is a manual measurement device, the user mustbe capable of taking a measurement and then confirming to CMM 10 whetherthe measurement is acceptable or not. This is accomplished through theuse of the two switches 150, 152. The front switch 150 is used to trapthe 3-dimensional data information and the back switch 152 confirms itsacceptance and transmits it to the host computer 18. On the back of theswitch enclosure 158 (housing 150, 152) is connector 154 which possessesa number of voltage lines and analog-to-digital converter lines forgeneral attachment to a number of options such as a laser scanningdevice or touch probe.

A variety of probes may be threaded to handle assembly 56. In FIG. 10A,hard ¼ inch diameter ball probe 158 is shown while in FIG. 10B, a pointprobe 160 is shown. Both probes 158, 160 are threadably mounted to mount156 (using male threaded member 157), which in turn, is threadablymounted to probe housing 58. Mount 156 also includes a plurality of flatsurfaces 159 for facilitating engagement and disengagement of the probesusing a wrench.

Turning now to FIGS. 11 and 12, a description of the controller orserial box 16 now follows. FIG. 11 shows the front panel face 162 of thecontroller or serial box 16. Front panel 162 has eight lights includingpower indicator light 164, error condition light 166, and six lights 20,one for each of the six transducers (identified as items 1-6) located ineach transfer housing. Upon powering up, power light 164 will indicatepower to the arm 12. At that time, all six transducer lights willindicate the status of each of the six transducers. In a preferredembodiment of this invention, the transducers are incremental digitaloptical encoders 80 and require referencing. (In a less preferredembodiment, the transducers may be analog devices). Hence, upon startup, each of the six joints (e.g., transfer housings) must be rotated tofind the reference position at which time the six lights shall turn off.

In accordance with an important feature of the present invention, duringusage, should any of the transducers approach its rotational endstop 106from within 2 degrees, a light and an audible beep for that particulartransducer indicates to the user that the user is too close to the endstop; and that the orientation of the arm should be readjusted for thecurrent measurement. The serial box 16 will continue to measure but willnot permit the trapping of the data until such endstop condition isremoved. A typical situation where this endstop feature is necessary isthe loss of a degree of freedom by the rotation of a particulartransducer to its endstop limit and, hence, the applications of forceson the arm causing unmeasured deflections and inaccuracies in themeasurement.

At any time during the measurement process, a variety of communicationand calculation errors may occur. These are communicated to the user bya flashing of the error light and then a combination of lights of thesix transducers indicating by code the particular error condition. Itwill be appreciated that front panel 162 may alternatively utilize analphanumeric LCD panel giving alphanumeric error and endstop warnings.

Turning to FIG. 12, the rear panel 168 of serial box 16 includes avariety of standard PC connectors and switches including a reset button170 which resets the microprocessor; an AC input fan 172 for aircirculation; a connector 174 for a standard PC AT keyboard, connector176 for an optional VGA board for monitoring of the internal operationsof serial box 16, connector 178 for receiving the variety of signallines for the CMM data, and connector 180 for the standard RS232connector for the host 18.

Serial box 16 is responsible for monitoring the temperature of the CMMand in real time modifying the kinematics or mathematics describing itsmotion according to formulas describing the expansion and contraction ofthe various components due to changes in temperature. For this purpose,and in accordance with an important feature of this invention, atemperature monitoring board 182 (which includes a temperaturetransducer) is positioned at the location of the second joint 42 on theinterior of a cover 184 (see FIGS. 4 and 5). CMM 10 is preferablyconstructed of aircraft grade aluminum externally and anodized.Preferably, the entire arm 12 is constructed of the same material exceptfor the mounting screws which are stainless steel. The same material isused throughout in order to make uniform the expansion and contractioncharacteristics of arm 12 and make it more amenable to electroniccompensation. More importantly, the extreme degree of stability requiredbetween all parts through the large temperature range requires thatthere be no differential thermal expansion between the parts. Asmentioned, the temperature transducer 182 is preferably located attransfer housing 42 because it is believed that this location definesthe area of highest mass and is therefore the last area to be stabilizedafter a large temperature fluctuation.

Referring now to FIG. 13, the overall electronic schematic layout forCMM 10 and serial box 16 is shown. Six encoders 80 are shown with eachencoder having an amplifier board 92 located in close proximity to itfor the minimization of noise on signal transfer. An option port 154 isshown which is a six pin connector available at the handle 56 for theattachment of a variety of options. Two control buttons 150 and 152 forindicating to serial box 16 the measurement process, are also shown.

The temperature transducer is associated with a temperature circuitboard 182 which is also located in arm 12 as shown in FIG. 13. Inaccordance with still another important feature of this invention, thetemperature board 182 comprises an EEPROM board. The EEPROM is a smallcomputerized memory device (electrically erasable programmable read onlymemory) and is used to contain a variety of specific calibration andserial number data on the arm (see discussion regarding FIGS. 19-21).This is a very important feature of this invention which permits highquality control of CMM 10 and importantly, precludes the inadvertentmixup of software and arms. This also means that the CMM arm 12 is astand alone device not requiring specific calibration data to reside incontroller box 16 which may need to be separately serviced and/orswitched with other machines.

The electronic and pulse data from the arm electronics is thentransmitted to a combined analog-to-digital converter/digital countingboard 186 which is a paired set comprising a 12 bit analog to digitalconverter and a multi channel 16 bit digital counter. Board 186 ispositioned on the standard buss of the controller box. The countinginformation is processed using the core module 188 (comprising acommercially available Intel 286 microprocessor such as a part numberCMX-286-Q51 available from Ampro) and programs stored on an EEPROM alsoresiding in the controller box. Subsequent data is then transmittedthrough the serial communication port 189.

The microprocessor-based serial box 16 permits preprocessing ofcalculations specific to CMM 10 without host level processingrequirements. Typical examples of such preprocessor calculations includecoordinate system transformations; conversion of units; leap-froggingfrom one coordinate system to another by using an intermediary jig;performance of certain certification procedures, including calculationsof distance between 2 balls (such as in ANSI B89 ballbar); andoutputting data in specific formats required for downloading to avariety of hosts and user programs.

The serial box is configured to communicate with a variety of hostformats including PC, MSDOS, Windows, Unix, Apple; VME and others. Thus,the serial box processes the raw transducer data on an ongoing basis andresponds to the information requests or polling of the host computerwith the desired three dimensional positional or orientationalinformation. The language of the serial box is in such a form thatdrivers or computer communication subroutines in microprocessor 188 arewritten in the language of the host computer so as to drive the serialport and communicate with CMM 10. This function is designated the“intelligent multi-protocol emulation and autos witching” function andworks as follows: A variety of host programs may be installed on thehost computer. These host programs will poll the serial port with avariety of requests to which the serial box must respond. A number ofprotocols have been preprogrammed into the serial box to responds topolls or inquiries on the serial port for a variety of different,popular softwares. A polling request by a software requires a specificresponse. The serial box will receive the polling request, establishwhich protocol it belongs to, and respond in the appropriate manner.This allows transparent communication between CMM 10 and a wide varietyof application software such as computer aided design and qualitycontrol softwares, e.g., AutoCad® from Autodesk, Inc., CADKEY® fromCadkey, Inc., and other CAD programs; as well as quality controlprograms such as GEOMET® from Geomet Systems, Inc. and Micromeasure IIIfrom Brown and Sharpe, Inc.

The three dimensional CMM of the present invention operates as follows.Upon power up, the microprocessor 188 in the serial box 16 undergoesstart up self-checking procedures and suppplies power through theinstrument port to arm 12 of CMM 10. The microprocessor and softwareresiding on EEPROM 182 determines that upon initial power up none of theencoders 80 have been initialized. Hence, the microprocessor 188 sends asignal to the display board lighting all the lights 20, indicating aneed to be referenced. The user will then mechanically move the armwhich will cause the transducers to individually scan their range, atwhich time a reference mark is passed. When the reference mark ispassed, the digital counter board 186 responds by trapping its locationand identifying to the front display board 20 that the transducer hasbeen referenced and the light is extinguished. Once all transducers havebeen referenced, the system establishes serial communication with thehost and waits for further instruction. Pressing of the front or backbutton of handle 56 will initiate a measurement process. Pressing thefront button 150 will trap the current transducer readings. Pressing theback button 152 will indicate to the microprocessor that these valuesare to be translated into dimensional coordinates and issued through theserial port to the host 18. The host 18 and the serial box 16 will thencontinue to react to each other's serial line requests.

Turning now to FIGS. 19, 20 and 21 subsequent to assembly of CMM 10, thedevice is optimized or calibrated by altering the program software toaccount for any measured imperfections in assembly or machining. Thisinitial calibration is an important feature of this invention and isaccomplished in two stages. First, a variety of dimensional measurementsare made which include positions, orientations and dimensions throughoutthe entire volume of the device. Subsequently, an optimization softwareprogram is used to determine the actual misalignments exiting at each ofthe joint axes and, hence, adjusting the kinematic formulas describingthe motion of the arm. The general result is that imperfect machiningand assembly is rendered perfect through the identification of thoseimperfections and their inclusion in the kinematics of the device.

Referring to FIGS. 19 and 20A-E, due to the huge amount of data and therequirement that it be accurately and easily obtained, a calibration andtesting jig is shown at 320. Jig 320 is comprised of a large graniteplate 322 to which is attached two spaced towers 324, 326 which canrotate 360 degrees in the horizontal plane. The CMM 10 is mounted ontower 326 and the adjustable dimensional testing jig 320 is mounted onthe other tower 324. Jig 320 is mounted on an extendable vertical arm328 which is vertically displaceable within an opening 330 through tower324. Arm 328 is shown in a fully extended position.

Still referring to FIGS. 19 and 20, the adjustable dimensional testingjig 320 is comprised of three basic components: a 24 inch bar 332 onwhich is found a set of precision balls 334, a series of holes 336positioned along its length, and a 24 inch precision step gauge 338(shown in detail in FIGS. 20A-E) Arm 332 is used to measure thepositions of the holes, steps and balls in a variety of positions forthe testing jig and in all areas of the volume of the arm as shown inFIG. 21. This data is then optimized. In summary, the importantoptimization procedure can be described as follows. Standard test jig320 with predetermined positions and orientations of objects is measuredby arm 10. The data is then processed through a multi-variableoptimization program created to provide the relative misalignment anddimension of all major components of the arm. Optimization is performed,at which time a calibration file is produced containing the overallcharacteristics of the arm. These overall characteristics and subsequenttransducer readings are combined in a variety of kinematic formulaswhich will generate the X, Y and Z values in an absolute coordinatesystem.

In order to further optimize performance, a novel reference ball 192extends laterally from a detachable mount 194 attached to base 14 of CMM10 (see FIGS. 14 and 15). By locating reference ball 192 at base 14,ball 92 represents the absolute origin of the device (0, 0, 0)corresponding to the X, Y and Z axes. Because of the known position ofreference ball 192, positioning of the tips, as shown in FIG. 15, allowsthe present invention to determine the coordinates of the digitizer tip158 in relationship to the last link of CMM 10. Knowledge of thisposition allows CMM 10 to determine the position of the center of thatball when making subsequent measurements. In a general sense, this meansthat a variety of different probes may then be attached depending on theparticular application and each can be calibrated against the referenceball.

Because of the portable nature of the present invention, it will besubjected to significant mishandling and repositioning in a variety ofenvironments. Therefore, the present invention includes a protocol bywhich the user may establish a degree of volumetric accuracy prior tousing a device according to a convenient maintenance schedule.Volumetric accuracy is defined, according to ASME ANSI B891.1.12 (1989)standard, as the ability of a device to measure a fixed length which ispositioned in its working volume in a variety of orientations. FIG. 16shows the capability of this invention to do this using a first ballbarapproach while FIGS. 17 and 18 depict a second ballbar approach.

FIG. 16 shows a standard ballbar 196 at each end of which is positioneda precision spherical ball 198, 200 which are mounted respectively intotwo magnetic sockets 202 and 204. Socket 202 is located at base 14 ofCMM 10 and socket 204 is located at probe handle 56. As arm 12 is movedabout, the sockets 202, 204 and balls 198, 200 rotate to accommodatethis movement and CMM 10 is required to measure the fixed distancebetween the center of ball 200 and socket 204 at the handle 56 and thecenter of ball 198 at the base. Remembering, of course, that socket 202at base 14 represents the 0, 0, 0 coordinate of CMM 10, calibrationsoftware in control box 16 then calculates the vector length from the 0,0, 0 to the center of the ball at the probe and this length, which, ofcourse, is unchanging during the test, must measure constantlythroughout the entire volume through multiple configurations androtations of the handle and other joints.

It will be appreciated that the socket 204 at the handle, may tend to beinconvenient and inconclusive when wanting to verify the accuracy of aparticular probe on the handle. Hence, in accordance with an importantfeature of this invention, a novel cone socket ballbar as shown at 206in FIG. 17 is used. Cone socket ballbar 206 includes a cone 208 at oneend and two balls 210, 212 at the other end. The cone and balls areinterconnected by a bar 207 having an angled portion 209 with then angleα preferably comprising 20 degrees. Ball 212 is attached to a mount 211which extends laterally from bar 207. A ball probe 158 or point probe160 is positioned in cone socket 208 and ball 210 can be mounted in thestandard magnetic socket 202 of base 14 of CMM 10. As in the calibrationmethod of FIG. 16, a number of positions of the ball and bar and jointpositions are measured and the distance between cone socket 208 and ball210 must remain constant. It is the nature of the positioning of ballsocket 202 that the user will not be able to reach on the far side ofthe machine (position shown by Item 214). To this end, ball 212 is usedas shown in FIG. 18. This allows the user to position cone ballbar 206so as to reach on the reverse far side of CMM 10 in order to measure thedistance between the center of ball 212 and the center of cone socket208.

In accordance with the present invention, a novel method is providedwherein the CMM 10 is used for programming the operational paths forcomputer controlled devices such as multi-axis machine tools androbotics. As mentioned, a serious limitation in the usability ofrobotics and multi-axis machines is the time and effort required toprogram intricate and convoluted tool paths in an effort to perform afunction such as with a welding or sanding robot or in a machine toolrequired to machine complex plastic molds. However, the 6-degree offreedom electrogoniometric device of this invention obtains provides theX, Y, Z position at the end of the probe as well as the I, J, K ordirection cosines or orientation of the probe, all of which can be usedin a novel method for programming such computer controlled devices. Itis this position and/or orientation which defines the functionality ofthe multi-axis device or robot being programmed. The sixth axis ofrotation usually is the rotational axis of the cutting or sanding toolor fixed position welding grips mounted on a sixth axis of a robot.

It will be appreciated that the programming of multi-axis devices inaccordance with this invention applies to all degrees of freedomincluding 3, 4, 5, 6, 7 and up axes of rotation. For example, acoordinate measuring machine with only 3-degrees of freedom will be ableto measure and store positional or orientation data (as opposed to bothpositional and orientation data) and to provide the tool path ormanufacturing operation sequence to a 3-axis (or greater) machine centeror robot. A CMM with at least 5-degrees of freedom will provide data onboth position (X, Y, Z) and orientation (I, J, K) to a 5-axis (orgreater) machine center or robot.

In accordance with the method of this invention, and as schematicallyset forth in steps A-D of the flow chart of FIG. 22, the user simplymanually operates the lightweight, easy-to-handle and passiveelectrogoniometric device of this invention with a simulated tool at itsdigitizer end for the emulation of either a tool path or manufacturingoperation whereupon the CMM, at a predetermined rate, accumulates the X,Y, Z and/or I, J, K orientation data of the manufacturing tool. Thisdata then is transferred according to industry standard formats to a CNCor computer numerically controlled device such as a robot or machiningcenter for the reproduction of the motions emulated using theelectrogoniometer 10.

An example of this method applied to a computer controlled 5-axismachine tool is depicted in FIGS. 23A-C. In FIG. 23A, a complex part isshown which must be replicated on a multi-axis machining center. In thisexample, the complex part is a mold 400 for making chocolate bunnies. Inorder to replicate mold 400, the machining center must be programmedwith the required tool path. Tool path is defined by position (X, Y, Z)or orientation (I, J, K) or both. If a 5-axis (or more) machining centeror robot is required to be programmed, than data on both position andorientation is needed. If a 3-axis machining center or robot is requiredto be programmed, than only positional or orientation information isrequired.

In FIG. 23B, a CMM 10 has a cutting tool 402 (or simulated cutting tool)attached to a collet on the handle/probe assembly 56 at the end ofmeasurement arm 12. The user then simulates the desired tool path asshown by the lines 404 (item A in FIG. 22). As described in detailabove, the measurement arm 22 records the position and orientation oftool 402 and saves (or stores) this data to an industry formatted datafile (item B in FIG. 22).

Next, referring to FIG. 23C, the stored data file is loaded into themicroprocessor of a multi-axis machining center 406 (item C in FIG. 22).The complex part (chocolate bunny mold 400) is then replicated oremulated by machine tool 408 based on the position and orientation dataoriginally acquired by CMM 10 (item D in FIG. 22).

At this point, the user may optimize the tool path and/or other cuttingparameters such as speed. If more data is required, further simulation(e.g., steps A-C of FIG. 22 may be repeated) may be performed and thedata appended to the original data set. Because the CMM is operated by ahuman, the data will contain some error caused by jitter and the like.Therefore, the data is preferably subjected to a known smoothing orrefining CAD/CAM program such as MASTERCAM by CNC Software, Inc. orSURFCAM by Surfware, Inc.

FIG. 24 depicts an example of the method of this invention in connectionwith a robotics application. The programming of a manufacturingoperation for a multi-axis robot utilizes the same steps as described inFIGS. 22A-D or FIGS. 23A-C. In this case, a robot which is used for amanufacturing operation such as sanding the surfaces of complex parts is“simulation trained” by the use of a sanding disc tool 410 provided atthe end of measurement arm 12. The position and orientation data isstored by CMM 10, and the data file (in a robot industry standardformat) is then loaded into the robot processor and/or executed. Otherexamples of robotic (and machining) operations which are useful with themethod of the invention include cutting, machining, polishing, grinding,painting, cleaning and welding.

The current single point positional accuracy of the present invention ison the order of the typical robot repeatability. However, fieldexperience has shown that the absolute accuracy of the typical robot isten or more times inaccurate when compared to the typical robotrepeatability stated above. In other words, a robot may repeat movementswith very accurate consistency but the accuracy of the robot's actualmovements may be relatively far removed from the programmed path. Thisis because the absolute accuracy of a robot is affected by manymechanical and electronic factors. In addition, robot kinematics arefurther affected by link and joint misalignments. The actual pathinaccuracies are overcome by the present invention by means of an errormap as depicted in FIG. 25. In FIG. 25, the programmed desired path is asolid line designated as 500. However, the dashed line 502 representsthe actual path of the robot or other multi-axis device. This dashedline 502 is derived by using a CMM 10 in accordance with this inventionto emulate (i.e., trace) the path taken by the robot and the resultantposition and orientation data of the actual path is shown as the dottedline path 502. The result is an error map between the desired path 500and the actual path 502 in three dimensional space. Appropriate softwareis then used to correct for the error through the computer. The resultis that after correction, the lines 500 and 502 coincide within therequired tolerances. The error map generated is used in standardindustrial techniques for robotic optimization. The principle ofoptimization includes the submission of an error map to a mathematicalformulation which attempts to minimize the errors between the actual andmeasured entities and through various statistical methodologies tocreate a set of kinematic parameters which when applied to the robotwill improve its repeatability and precision. Examples of suitableoptimization techniques of the type described herein include KinematicCalibration and Geometrical Parameter Identification for Robots,Jean-Michaels Renders et al; IEEE Transaction on Robotics andAutomation, Vol. 7, No. 6, December 1991; A Closed Form Solution to theKinematic Parameter Identification of Robot Manipulators, Hangi Zhuanget al, Proceedings of the 1991 IEEE International Conference on Roboticsand Automation, Sacramento, Calif., April 1991; Improving The PrecisionOf A Robot, Laurent P. Poulloy et al, IEEE Journal of Robotics andAutomation, Page 62, 1984; A General Procedure to Evaluate RobotPositioning Errors, Ramesh N. Vaishnav et al, International Journal ofRobotics Research, Vol. 6, No. 1, Spring: 1987 and Robot Arm GeometricLine Parameter Estimation, Samed A. Hayati et al, IEEE Journal ofRobotics and Automation, Page 1477, 1983.

Referring to FIG. 27, in accordance with the method of this invention,and as schematically set forth in steps A′-D′ of the flow chart of FIG.26, the multi-axis device or robot 504 is directly attached such as byusing mechanical linkage 506 to CMM 10 to trace the actual path 502 thatthe multi-axis device or robot performed (such as directed in step D ofFIG. 22) and as shown in step A′ of FIG. 26. Since the CMM arm 10 issimply attached to the robot 504 and the robot 504 is taken through aset of maneuvers which are measured by CMM 10, then the comparison ofthe information regarding where the robot thinks it is and where thearticulated arm CMM says its is, is used to define the error map of FIG.25. That is, the “error” between the desired position 504 of the robot500 and the measured position 502 per the articulated arm CMM 10 isdefined. Thus, in step B′, the CMM 10 stores position and orientationdata of the actual tool path or manufacturing operation 500 so as toderive the error map of FIG. 25. Following in step C′ of FIG. 26,appropriate software in the CMM computer corrects the actual path 502 tocoincide with the desired tool path or manufacturing operation 500initially acquired by CMM 10 in, for example, step C of FIG. 22.Finally, as shown in step D′ of FIG. 26, the multi-axis device 504 willnow truly emulate the corrected tool path or manufacturing operation 500accurately. Thus, the multi-axis device or robot 504 is calibrated toeliminate errors in space.

While preferred embodiments have been shown and described, variousmodifications and substitutions may be made thereto without departingfrom the spirit and scope of the invention. Accordingly, it is to beunderstood that the present invention has been described by way ofillustrations and not limitation.

What is claimed is:
 1. A method for generating an error map formulti-axis devices in order to improve the repeatability and/orprecision of multi-axis devices comprising the steps of: (1) attachingthe measurement arm of a passive three dimensional coordinate measuringmachine (CMM) having multiple degrees of freedom to a multi-axis deviceand operating the CMM through a selected 3-dimensional path or operationwhich emulates the desired proselected programmed path or operation ofthe multi-axis device; (2) developing 3-dimensional data of at least oneof (a) position and (b) orientation from step (1) and storing said data,said data defining the actual path or operation of the multi-axisdevice; (3) comparing the actual path or operation to the desiredpreselected programmed path or operation; (4) generating an error mapcomparing the actual path or operation to the desired preselectedprogrammed path or operation; and (5) using said error map to improvethe repeatability and/or precision of the multi-axis device; whereinsaid CMM includes 6 degrees of freedom, said CMM comprises: a movablearm having opposed first and second ends, said arm including a pluralityof joints with each joint corresponding to a degree of freedom such thatsaid arm is movable within a selected volume, each of said jointscomprising a rotational transfer housing for housing a positiontransducer, said transducer producing a position signal; a support baseattached to said first end of said movable arm; a probe attached to saidsecond end of said movable arm; and an electronic circuit for receivingsaid position signals from said transducer and providing a digitalcoordinate corresponding to the position of said probe in a selectedvolume.
 2. The method of claim 1 wherein: said multi-axis devicecomprises a device having at least 3 axes and the data developed in step(2) comprises position or orientation data.
 3. The method of claim 1wherein: said multi-axis device comprises a device having at least 5axes and the data developed in step (2) comprises position andorientation data.
 4. The method of claim 1 wherein: said multi-axisdevice comprises a machining device.
 5. The method of claim 1 wherein:said multi-axis device comprises a robot.
 6. The method of claim 1wherein: said operation is selected from the group consisting ofwelding, sanding, cutting, machining, polishing, grinding, painting andcleaning.
 7. The method of claim 1 wherein: a mechanical linkage is usedto attach said CMM to said multi-axis device.